#region License

// Copyright (c) 2013, ClearCanvas Inc.
// All rights reserved.
// http://www.clearcanvas.ca
//
// This file is part of the ClearCanvas RIS/PACS open source project.
//
// The ClearCanvas RIS/PACS open source project is free software: you can
// redistribute it and/or modify it under the terms of the GNU General Public
// License as published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// The ClearCanvas RIS/PACS open source project is distributed in the hope that it
// will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
// Public License for more details.
//
// You should have received a copy of the GNU General Public License along with
// the ClearCanvas RIS/PACS open source project.  If not, see
// <http://www.gnu.org/licenses/>.

#endregion

// This file is auto-generated by the ClearCanvas.Model.SqlServer.CodeGenerator project.

namespace ClearCanvas.ImageServer.Model
{
    using System;
    using System.Collections.Generic;
    using ClearCanvas.ImageServer.Model.EntityBrokers;
    using ClearCanvas.ImageServer.Enterprise;
    using System.Reflection;

[Serializable]
public partial class ServiceLockTypeEnum : ServerEnum
{
      #region Private Static Members
      private static readonly ServiceLockTypeEnum _FilesystemDelete = GetEnum("FilesystemDelete");
      private static readonly ServiceLockTypeEnum _FilesystemReinventory = GetEnum("FilesystemReinventory");
      private static readonly ServiceLockTypeEnum _FilesystemStudyProcess = GetEnum("FilesystemStudyProcess");
      private static readonly ServiceLockTypeEnum _FilesystemLosslessCompress = GetEnum("FilesystemLosslessCompress");
      private static readonly ServiceLockTypeEnum _FilesystemLossyCompress = GetEnum("FilesystemLossyCompress");
      private static readonly ServiceLockTypeEnum _FilesystemRebuildXml = GetEnum("FilesystemRebuildXml");
      private static readonly ServiceLockTypeEnum _ArchiveApplicationLog = GetEnum("ArchiveApplicationLog");
      private static readonly ServiceLockTypeEnum _PurgeAlerts = GetEnum("PurgeAlerts");
      private static readonly ServiceLockTypeEnum _ImportFiles = GetEnum("ImportFiles");
      private static readonly ServiceLockTypeEnum _SyncDataAccess = GetEnum("SyncDataAccess");
      private static readonly ServiceLockTypeEnum _ExternalRequestProcess = GetEnum("ExternalRequestProcess");
      private static readonly ServiceLockTypeEnum _ExternalNotificationProcess = GetEnum("ExternalNotificationProcess");
      private static readonly ServiceLockTypeEnum _PartitionOrderPurge = GetEnum("PartitionOrderPurge");
      private static readonly ServiceLockTypeEnum _PartitionReapplyRules = GetEnum("PartitionReapplyRules");
      #endregion

      #region Public Static Properties
      /// <summary>
      /// This services checks if a filesystem is above its high watermark.  If the filesystem is above the high watermark it migrates studies, deletes studies, and purges studies until the low watermark is reached.
      /// </summary>
      public static ServiceLockTypeEnum FilesystemDelete
      {
          get { return _FilesystemDelete; }
      }
      /// <summary>
      /// This service re-inventories the studies stored on a filesystem.  It scans the contents of the filesystem, and if a study is not already stored in the database, it will insert records to process the study into the WorkQueue.
      /// </summary>
      public static ServiceLockTypeEnum FilesystemReinventory
      {
          get { return _FilesystemReinventory; }
      }
      /// <summary>
      /// This service scans the contents of a filesystem and reapplies Study Processing rules to all studies on the filesystem that have not been archived.  Studies that have been archived will have Study Archived and Data Access rules applied.
      /// </summary>
      public static ServiceLockTypeEnum FilesystemStudyProcess
      {
          get { return _FilesystemStudyProcess; }
      }
      /// <summary>
      /// This service checks for studies that are eligible to be lossless compressed on a filesystem.  It works independently from the watermarks configured for the filesystem and will insert records into the WorkQueue to compress the studies as soon as they are eligible.
      /// </summary>
      public static ServiceLockTypeEnum FilesystemLosslessCompress
      {
          get { return _FilesystemLosslessCompress; }
      }
      /// <summary>
      /// This service checks for studies that are eligible to be lossy compressed on a filesystem.  It works independently from the watermarks configured for the filesystem and will insert records into the WorkQueue to compress the studies as soon as they are eligible.
      /// </summary>
      public static ServiceLockTypeEnum FilesystemLossyCompress
      {
          get { return _FilesystemLossyCompress; }
      }
      /// <summary>
      /// Rebuild the Study XML file for each study stored on the Filesystem
      /// </summary>
      public static ServiceLockTypeEnum FilesystemRebuildXml
      {
          get { return _FilesystemRebuildXml; }
      }
      /// <summary>
      /// This service removes application log entries from the database and archives them in zip files to a filesystem.  When initially run, it selects a filesystem from the lowest filesystem tier configured on the system.
      /// </summary>
      public static ServiceLockTypeEnum ArchiveApplicationLog
      {
          get { return _ArchiveApplicationLog; }
      }
      /// <summary>
      /// This service by default removes Alert records from the database after a configurable time.  If configured it can save the alerts in zip files on a filesystem.  When initially run, it selects a filesystem from the lowest filesystem tier configured on the system to archive to.
      /// </summary>
      public static ServiceLockTypeEnum PurgeAlerts
      {
          get { return _PurgeAlerts; }
      }
      /// <summary>
      /// This service periodically scans the filesystem for dicom files and imports them into the system.
      /// </summary>
      public static ServiceLockTypeEnum ImportFiles
      {
          get { return _ImportFiles; }
      }
      /// <summary>
      /// This service periodically synchronizes the deletion status of Authority Groups on the Enterprise Services with Data Access granted to studies on the ImageServer.
      /// </summary>
      public static ServiceLockTypeEnum SyncDataAccess
      {
          get { return _SyncDataAccess; }
      }
      /// <summary>
      /// This service processes requests made to the ImageServer from external applications.
      /// </summary>
      public static ServiceLockTypeEnum ExternalRequestProcess
      {
          get { return _ExternalRequestProcess; }
      }
      /// <summary>
      /// This service processes notifications to send to external applications.
      /// </summary>
      public static ServiceLockTypeEnum ExternalNotificationProcess
      {
          get { return _ExternalNotificationProcess; }
      }
      /// <summary>
      /// This service purges orders not linked to studies on a partition.
      /// </summary>
      public static ServiceLockTypeEnum PartitionOrderPurge
      {
          get { return _PartitionOrderPurge; }
      }
      /// <summary>
      /// This service scans the contents of a partition and reapplies Study Processing rules to all studies on the partition that have not been archived.  Studies that have been archived will have Study Archived and Data Access rules applied.
      /// </summary>
      public static ServiceLockTypeEnum PartitionReapplyRules
      {
          get { return _PartitionReapplyRules; }
      }

      #endregion

      #region Constructors
      public ServiceLockTypeEnum():base("ServiceLockTypeEnum")
      {}
      #endregion
      #region Public Members
      public override void SetEnum(short val)
      {
          ServerEnumHelper<ServiceLockTypeEnum, IServiceLockTypeEnumBroker>.SetEnum(this, val);
      }
      static public List<ServiceLockTypeEnum> GetAll()
      {
          return ServerEnumHelper<ServiceLockTypeEnum, IServiceLockTypeEnumBroker>.GetAll();
      }
      static public ServiceLockTypeEnum GetEnum(string lookup)
      {
          return ServerEnumHelper<ServiceLockTypeEnum, IServiceLockTypeEnumBroker>.GetEnum(lookup);
      }
      #endregion
}
}
